/* eslint-disable no-use-before-define */
import axios, { type Response } from '@/utils/axios/axios';

/** 删除轮播图 */
export function getHomeDataAxios(): Promise<Response<HomeData>> {
  return axios.get(`/system/census/index`) as unknown as Promise<Response<HomeData>>;
}

/** 首页统计 */
export function getHomeData(): Promise<Response<HomeCensus>> {
  return axios.get(`/system/census/home`) as unknown as Promise<Response<HomeCensus>>;
}

export type HomeData = {
  /** 追剧人数  */
  dramaChasingUserNum: number;
  /** 付费短剧排行 */
  dramaPayRankList: DramaPayRank[];
  /** 今日付费金额 */
  todayPayTotalAmount: number;
  /** 今日付费用户 */
  todayPayUserNum: number;
  /** 用户总数 */
  userCount: number;
  /** 用户支付排行榜 */
  userPayRankList: UserPayRank[];
  /** 观看人数 */
  viewUserTotalNum: number;
  /** 会员总数 */
  vipUserCount: number;
  /** 本周付费金额  */
  weekPayTotalAmount: number;
  /** 本周充值用户  */
  weekPayUserNum: number;
  /** 星期 */
  weekNameList: string[];
  /** 本周充值 */
  thisWeekPayList: number[];
  /** 上周充值 */
  lastWeekPayList: number[];
  /** 上周充值金额 */
  lastWeekPayTotalAmount: number;
  /** 本周新增会员数 */
  weekAddVipUserNum: number;
  /** 本周新增用户数 */
  weekAddUserNum: number;
  /** 本周追剧表 */
  thisWeekChasingList: number[];
  /** 上周追剧表 */
  lastWeekChasingList: number[];
  /** 本周追剧人数 */
  thisWeekChasingNum: number;
  /** 上周追剧人数 */
  lastWeekChasingNum: number;
  /** 本周消费表 */
  thisWeekConsumeList: number[];
  /** 上周消费表 */
  lastWeekConsumeList: number[];
  /** 本周消费金额 */
  thisWeekConsumeAmount: number;
  /** 上周消费金额 */
  lastWeekConsumeAmount: number;
};

export type DramaPayRank = {
  /** 短剧名称 */
  dramaTitle: string;
  /** 导演 */
  director: string;
  /** 收入总金额 */
  totalAmount: number;
};

/**
 * 用户支付排行榜
 */
export type UserPayRank = {
  /** 昵称 */
  nickname: string;
  /** 累计支付总额 */
  payAmount: number;
  /** 登录账号 */
  username: string;
};

export interface HomeEarningsData {
  /**
   * 今日消耗
   */
  todayConsume?: number;
  /**
   * 今日收益
   */
  todayEarnings?: number;
  /**
   * 本周收益
   */
  weekEarnings?: number;
  /**
   * 昨日收益
   */
  yesterdayEarnings?: number;
  /**
   * ROI
   */
  roi?: number;
  /**
   * 本月收益
   */
  monthEarnings?: number;
  /**
   * 会员总数
   */
  vipUserCount?: number;
  /**
   * 总订单数
   */
  orderCount?: number;
  /**
   * 总订单金额
   */
  orderCountAmount?: number;
  /**
   * 短剧总数
   */
  dramaCount?: number;
  consumptionBalance?: number;
}

export interface HomeRegisterData {
  /**
   * 本月活跃用户数
   */
  monthActiveUserNum?: number;
  /**
   * 三日新增用户数
   */
  threeDaysAddUserNum?: number;
  /**
   * 今日注册用户数
   */
  todayAddUserNum?: number;
  /**
   * 今日登录用户数
   */
  todayLoginUserNum?: number;
  /**
   * 本周活跃用户数
   */
  weekActiveUserNum?: number;
  /**
   * 本周新增用户数
   */
  weekAddUserNum?: number;
}

/**
 * HomeCensusDTO
 */
export interface HomeCensus extends HomeEarningsData, HomeRegisterData {
  /**
   * 本周注册用户数集合
   */
  thisWeekAddUserNumList?: number[];
}
